#ifndef PRUEBACUBA_H_
#define PRUEBACU_H_

#include "../DatoCuba.h"
#include "../ClaveDatoCuba.h"
#include "ClaveAlumno.h"
#include "../Cuba.h"
#include "../includes.h"

using namespace Toolkit;

void pruebaCombinarCuba()
{
	unsigned long int tamanoBloque = 512;
	TipoSerializacion tSerializacion = TEXTO;
	Cuba cubaGood(tamanoBloque, tSerializacion);
	Cuba cubaUgly(tamanoBloque, tSerializacion);

	int profundidadInicial = 5;
	cubaUgly.setProfundidad(profundidadInicial);

	Registro *registro = new Registro(tSerializacion);
	ClaveAlumno clavePosta (85996, tSerializacion);
	DatoCuba *dato = new DatoCuba(500, clavePosta, tSerializacion);
	ClaveDatoCuba claveCuba (*dato,tSerializacion);
	registro->setDato(*dato);

	cubaGood.agregar(registro);
	cubaUgly.combinar(cubaGood);
	delete dato;

	Registro* registroMilagroso = (Registro*)cubaUgly.popFront();
	DatoCuba* datoCubaMilagroso = (DatoCuba*)registroMilagroso->clonarDato();

	if ((claveCuba == *datoCubaMilagroso) &&
		(cubaUgly.getProfundidad() == (profundidadInicial -1)))
	{
		cout << "El metodo combinar de cuba, funciona";
	} else {
		cout << "wtf? como no funciona el metodo combinar?";
	}

	delete datoCubaMilagroso;
	delete registroMilagroso;
}


#endif /*PRUEBACUBA_H_*/
